// funcs.go
package types

import (
	"encoding/json"
	//	"errors"
	//	"encoding/json"
	"fmt"
	//	"log"
)

type ErrorControler struct {
	errs []error
	//Err error
}

func NewErrorControler() *ErrorControler {
	errCtrl := &ErrorControler{}
	//errCtrl.Start()
	return errCtrl
}

/*
func (errCtrl *ErrorControler) Start() {
	go func() {
		for {
			if errCtrl.Err != nil {
				test("add a err")
				errCtrl.errs = append(errCtrl.errs, errCtrl.Err)
				errCtrl.Err = nil
			}
		}
	}()
}
*/
func (errCtrl *ErrorControler) Check(err error) {
	if err != nil {
		errCtrl.errs = append(errCtrl.errs, err)
	}
}

func (errCtrl ErrorControler) Errs() (strArr []string) {
	for i := 0; i < len(errCtrl.errs); i++ {
		strArr = append(strArr, errCtrl.errs[i].Error())
	}
	return strArr
}

func (errCtrl ErrorControler) Error() (str string) {
	strArr := errCtrl.Errs()
	bArr, _ := json.Marshal(strArr)
	return string(bArr)
}

func checkError(err error) {
	if err != nil {
		//log.Fatal("Fatal error:", err.Error())
		fmt.Println(err)
	}
}

func test(i interface{}) {
	fmt.Println("node:", i)
}
